package com.yk._04不安全的集合类;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Vector;
import java.util.concurrent.CopyOnWriteArrayList;

public class _01不安全的List集合 {
    public static void main(String[] args) {
        ArrayList<Integer> strings = new ArrayList<>();
        //在多线程情况下这样操作是有问题的  会出现 ConcurrentModificationException 异常

        for (int i = 0; i < 10000; i++) {
            int finalI = i;
            new Thread(()->{
                strings.add(finalI);
                System.out.println(strings);

            }).start();
        }
        //解决方案一下
        //1.使用安全的集合类 Vector 效率低
        Vector<String> vector = new Vector<>();
        //2.使用集合类工具把不安全的集合转换一下  Collections.synchronizedList(List<E> list)
        List<Integer> YesArrayList = Collections.synchronizedList(strings);
        //3.使用并发工具类 CopyOnWriteArrayList
        CopyOnWriteArrayList<String> copyOnWriteArrayList = new CopyOnWriteArrayList<>();

    }

}
